package com.cy.stores.interceptor;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//HandlerInterceptorAdapter 是 Spring 提供的一个适配器类，
//实现了 HandlerInterceptor 接口，并且提供了默认的空实现。
//它的存在使得我们在实现自定义拦截器时，只需要关注我们感兴趣的方法，而不需要实现所有方法。
public class LoginInterceptor implements HandlerInterceptor {
    /**
     * 检测全局session对象中死否有uid数据；如果有则放行，没有则重定向到登录页面
     * @param request 请求对象
     * @param response 响应对象
     * @param handler 处理器（url+controller 映射）
     * @return  true放行当前请求；false则拦截
     * @throws Exception
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//        / 在请求处理前执行的逻辑
//        return true; // 返回 true 允许请求继续，返回 false 则终止请求
        Object uid = request.getSession().getAttribute("uid");
        if(uid == null){//说明用户没有登录过系统，重定向到首页
            response.sendRedirect("/web/login.html");
//            结束后续的调用
            return false;
        }
        return true;
    }


}
